Communication networks are well known in the computer communications field. By definition, a network is a group of computers and associated devices that are connected by communications facilities or links. Network communications can be of a permanent nature, such as via cables, or can be of a temporary nature, such as connections made through telephone or wireless links. Networks may vary in size, from a local area network (“LAN”), consisting of a few computers or workstations and related devices, to a wide area network (“WAN”), which interconnects computers and LANs that are geographically dispersed, to a remote access service (“RAS”), which interconnects remote computers via temporary communication links. An internetwork, in turn, is the joining of multiple computer networks, both similar and dissimilar, by means of gateways or routers, that facilitate data transfer and conversion from various networks. A well-known abbreviation for the term internetwork is “internet.” As currently understood, the capitalized term “Internet” refers to the collection of networks and routers that use the Internet Protocol (“IP”), along with higher level protocols, such as the Transmission Control Protocol/Internet Protocol (“TCP/IP”) or the Uniform Datagram Packet/Internet Protocol (“UDP/IP”), to communicate with one another.
The Internet has recently seen explosive growth by virtue of its ability to link computers located throughout the world. Other interactive environments may include proprietary environments, such as those provided by the Microsoft Network (MSN) or other online service providers, as well as the “wireless Web” provided by various wireless networking providers, especially those in the cellular phone industry. As will be appreciated from the following description, the present invention could apply in any such interactive environments; however, for purposes of discussion, the Internet is used as an exemplary interactive environment for implementing the present invention.
The Internet has quickly become a popular method of disseminating information due in large part to its ability to deliver information in a variety of formats. To make information available over the Internet, a user typically composes a document or other data that resides on a server connected to the Internet that has mass storage facilities for storing documents and/or data and that runs administrative software for handling requests for those stored documents. A common way of addressing a document is through an associated Uniform Resource Locator (“URL”) that provides the exact location of a linked document on a server connected to the Internet.
At the start of the Internet, the information stored on the Internet was generally static in nature and, if one wanted to change the information contained in a document on a server, it was necessary to manually configure the document by rewriting the document. However, at the present stage of the development of the Internet, many servers provide dynamic content that changes depending on a user's interaction between the user's consumer device and the server.
Concurrently with the development of the Internet, there has been a number of enhancements to graphical user interfaces (“GUIs”) for computer systems. One such GUI is known as a wizard interface, also known as assistants interfaces in some instances. Wizard interfaces are generally a structured series of pages or dialogs that interact with a wizard engine to allow a user to produce a result. Wizard interfaces and wizard engines are collectively referred to herein as wizards. Unlike other forms of GUIs, such as tutorials and online help screens, wizards also accomplish one or more tasks. Since wizard interfaces were introduced, as shown in U.S. Pat. No. 5,301,326, the text and drawings of which are herein incorporated by reference, they have gained wide acceptance as a way to guide end users through complex tasks. As their acceptance has grown, so too has the complexity of the tasks that wizards have been called upon to perform. In addition, due to the increased usage, different types of individuals are being called upon to contribute to the creation of wizards.
Conventional wizard interfaces are generally hard-coded graphical user interface components require a substantial amount of expertise in software development to design. As the need for wizards has increased, the supply of experienced developers capable of creating and/or overseeing the creation of wizard interfaces has not increased proportionally. Accordingly, there is a need for a way to design wizards without the need for experienced software developers.
Conventional wizard interfaces, when in complete form, are easy to navigate and use for even inexperienced end users. However, altering a wizard interface by adding, deleting, or changing the pages of the wizard interface entails multiple levels of changes that are difficult to perform. For example, adding another branching page to a wizard interface might require all previous and/or subsequent pages to be updated to reflect the new page order. Additionally, all components for all pages in the wizard interface would need to be determined in advance and packaged with the wizard. A wizard interface having five branching pages, each with three possible branches, has over 200 possible page nodes and potentially over 100 variations of just the fifth page. This complexity is only exacerbated when more pages included in a complex wizard interface are added and when wizards provide more than three options in a page. Still further, the ability to integrate live data (e.g., listings of available servers or other real-time information) in conventional wizards is limited by the difficulty of dynamically changing the pages of a wizard interface. Rather, all possible combinations need to be determined in advance. This necessitates even larger and more cumbersome development and deployment of conventional wizards or simply hampers a wizard's ability to respond/interact in an efficient manner. It would be desirable to have an easy-to-use system and method of enhancing wizard interfaces without the increased complexity and/or resources required by previously developed wizard interfaces.